package com.hand.demo.config;

import feign.Response;
import org.hzero.boot.file.FileClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;

import javax.annotation.Resource;
import java.util.List;

/**
 *
 */
@Component
public class FileConfig {
    @Resource
    private FileClient fileClient;

    @Value("${my.hzero.file.tenantId}")
    private Long tenantId;

    @Value("${my.hzero.file.bucketName}")
    private String bucketName;

    @Value("${my.hzero.file.baseDir}")
    private String baseDir;

    /**
     *
     * @param dir 文件目录
     * @param fileName 文件名
     * @param multipartFile 文件
     * @return 文件url
     */
    public String upload(String dir, String fileName, MultipartFile multipartFile) {
        String realDir = dir == null ? baseDir : (baseDir + dir);
        return fileClient.uploadFile(tenantId, bucketName, realDir, fileName, multipartFile);
    }

    /**
     *
     * @param fileUrl 文件url
     * @return 文件信息
     */
    public Response download(String fileUrl) {
        return fileClient.downloadFileResponse(tenantId, bucketName, fileUrl);
    }

    /**
     *
     * @param urls 文件url集合
     * @return 是否成功删除
     */
    public boolean delete(List<String> urls) {
        fileClient.deleteFileByUrl(tenantId, bucketName, urls);
        return true;
    }
}
